package com.chinacoal.microservice.service;

import com.alibaba.fastjson.JSONObject;
import com.chinacoal.microservice.pojo.*;
import com.chinacoal.microservice.util.QueryCriteria;
import com.chinacoal.microservice.util.Result;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @author zhuliang
 * @version V1.0
 * @Description: 运维模块-费用管理-后端实现接口类
 * @date 2020-11-25 20：20
 */
public interface CostManagementService {

    Result<List<CcmsSmartleasingExpenseManag>> getAllByExpenseManag(QueryCriteria queryCriteria, String token);

    Result<List<CcmsSmartleasingExpenseManag>> getAllExpenseManagByCondition(QueryCriteria queryCriteria, String token);

    Result<List<CcmsSmartleasingHistoricalPayment>> getHistoricalPaymentsByExpenseManagId(String fkExpenseManagId, String token);

    Result<CcmsSmartleasingNotice> getNoticeByContractId(String fkExpenseManagId, String token);

    Result<CcmsSmartleasingExpenseManag> meterReadingByExpenseManagId(String pkExpenseManagId, String token);

    Result invoicing(String pkExpenseManagId, String token);

    Result addMeterReadingInformation(CcmsSmartleasingExpenseEntry expenseEntry, String token);

    Result pay(CcmsSmartleasingExpenseManag expenseManag, String token);

    Result<CcmsSmartleasingNotice> getAuditEcho(String pkExpenseManagId, String token);

    Result meterReadingReview(CcmsSmartleasingExpenseEntry expenseEntry, String token);

    Result offlineInvoicing(CcmsSmartleasingExpenseManag expenseManag, String token);

    Result getInvoicing(String result, String token, String orderNumber);

    Result importMeterReadingInformations(MultipartFile file, String token);

    Result lockCost(String token);

    void downloadTemplateFile(HttpServletResponse response,String token);

    void exportSummaryReport(HttpServletResponse response,String startDate,String endDate,List<String> areaNumberIds,String token);

    void exportSummaryReportByClient(HttpServletResponse response,String startDate,String endDate,List<String> areaNumberIds,String token);

    void exportDebtDetailReport(HttpServletResponse response,String startDate, List<String> areaNumberIds,String token);
}
